package com.xq.service.newscategory;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xq.mapper.NewsCategoryMapper;
import com.xq.entity.NewsCategory;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
import com.xq.vo.NewsCategoryVo;

/**
 * 新闻分类管理
 * NewsCategoryServiceImpl
 *******************************************
 * 更多精彩B站搜索:学相伴飞哥
 * 资料下载学习平台：https://www.kuangstudy.com
 * 创世神B站：https://space.bilibili.com/490711252
 *******************************************
 * 创建人:yykk老师
 * 创建时间：2021年09月15日 16:03:03
 * @version 1.0.0
*/
@Service
@Slf4j
public class NewsCategoryServiceImpl extends ServiceImpl<NewsCategoryMapper,NewsCategory> implements INewsCategoryService  {

    /**
     * 查询分页
     * @param newscategoryVo
     * @return
     * 创建人:yykk
     * 创建时间：2021年09月15日 16:03:03
     * @version 1.0.0
     */
    @Override
	public IPage<NewsCategory> findNewsCategoryPage(NewsCategoryVo newscategoryVo){
	    // 1：设置分页信息
		Page<NewsCategory> page = new Page<>(newscategoryVo.getPageNo(),newscategoryVo.getPageSize());
		// 2：设置查询条件
        LambdaQueryWrapper<NewsCategory> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        // 3：查询发布的 0 未发布  1 发布
        lambdaQueryWrapper.eq(newscategoryVo.getStatus() != null ,NewsCategory::getStatus,newscategoryVo.getStatus());
        // 4: 根据关键词搜索用户信息
        lambdaQueryWrapper.like(StringUtils.isNotEmpty(newscategoryVo.getKeyword()), NewsCategory::getTitle,newscategoryVo.getKeyword());
        // 5：根据时间排降序
        lambdaQueryWrapper.orderByDesc(NewsCategory::getCreateTime);
        // 6：查询分页返回
		IPage<NewsCategory> results = this.page(page,lambdaQueryWrapper);
		return results;
	}

	/**
     * 根据id查询信息
     * @param id
     * @return
     * 创建人:yykk
     * 创建时间：2021年09月15日 16:03:03
     * @version 1.0.0
     */
    @Override
    public NewsCategory getNewsCategoryById(Long id) {
        return this.getById(id);
    }

    /**
     * 保存&修改
     * @param newscategory
     * @return
     * 创建人:yykk
     * 创建时间：2021年09月15日 16:03:03
     * @version 1.0.0
     */
    @Override
	public NewsCategory saveupdateNewsCategory(NewsCategory newscategory){
		boolean flag = this.saveOrUpdate(newscategory);
		return flag ? newscategory : null;
	}



    /**
     * 根据id删除
     * @param id
     * @return
     * 创建人:yykk
     * 创建时间：2021年09月15日 16:03:03
     * @version 1.0.0
     */
    @Override
    public int deleteNewsCategoryById(Long id) {
        boolean b = this.removeById(id);
        return b ? 1 : 0;
    }
}